home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / -archivi / -recent2 / clib37x.readme < prev    next >
Text File  |  1999-01-01  |  15KB  |  319 lines

  1. Short:    Example.library in 100% C (SAS/Storm/Maxon/GCC/VBCC/DICE/...)
  2. Author:   (various, see below)
  3. Uploader: Andreas_Kleinert@t-online.de
  4. Type:     dev/c
  5.  
  6.   example.library V37.33 (14.3.99)
  7.  
  8.   An Amiga shared library in 100 % C language - coming with sources.
  9.  
  10.   Compiler Checklist:        Compiler           Support
  11.                              -------------------------------
  12.    (see README.<compiler>    SAS/C 6.5x         yes
  13.     for more information)    MaxonC 3.x         yes
  14.                              StormC 2.x         yes
  15.                              DICE 3.x           yes
  16.                              GCC 2.7.2.1        yes
  17.                              vbcc 0.5+          yes
  18.                              AztecC             (not tested)
  19.  
  20.   OS Checklist:              Operating System   Support
  21.                              -------------------------------
  22.                              Amiga OS 37-40     yes
  23.                              AROS 1.x           yes (AROS source tree)
  24.  
  25.  
  26.   Original SAS/C and StormC version (C) 1996-99 by Andreas R. Kleinert.
  27.   StormC rework/additions done 1999 by Fredrik Rambris.
  28.   MaxonC version changes done 1996 by Helmut Hummel and Stephan Rupprecht.
  29.   GCC version changes done 1997 by Stefan Fuchs and Gunter Nikl.
  30.   AROS source tree done 1997 by Aaron Digulla.
  31.   VBCC version changes done 1997 by Patrizio Biancalani and Patrick Burnand.
  32.   DICE adaptation done 1998 by Patrick Burnand.
  33.   All rights reserved.
  34.   ----------------------------------------------------------------------
  35.   This sample library intends to make Amiga shared library sources
  36.   compileable with any available Amiga C compiler - without any
  37.   changes to the source code.
  38.  
  39.   And maybe in the future also running under any Amiga compatible
  40.   operating system with any CPU (e.g. AROS, see the following URL:
  41.   http://aros.fh-konstanz.de/aros/ ).
  42.  
  43.   The first goal seams to be easily done: nearly any noticeable compiler
  44.   for the Amiga does support generation of libraries by special
  45.   linker commands and pre-generated object files.
  46.  
  47.   But when looking into the details, one will find out, that these
  48.   linker functionality just reduces the influence of the programmer
  49.   on how his sources are handled, that the pre-generated object
  50.   files just originally were done in Assembler, and that each compiler
  51.   does define its own interface definitions and usage rules.
  52.  
  53.   But as a programmer, it is important to have control over the _complete_
  54.   source code and to be able to compile it _anywhere_ with only
  55.   minor changes, even better without any changes.
  56.  
  57.   Since most Amiga system modules - noticeable Libraries, Devices and
  58.   Resources - do have startup-modules and other larger parts completely
  59.   written in Assembler language, the most important task for getting
  60.   inter-compiler and operating system independant sources in my opinion
  61.   is, to completely migrate the interfaces to C language (but different
  62.   to AROS, for example, it is most important, to keep the sources running
  63.   under the current 68k AmigaOS in the _first_ place).
  64.  
  65.   This goal basically has been reached already, still missing of
  66.   course are some of the less Amiga-native compilers and also
  67.   tests with any kind of "AmigaOS for PowerPC" or other CPUs.
  68.  
  69.   But since Assembler is nearly as portability-hostile as BCPL _today_
  70.   we may come quite close to the goal defined above by just moving
  71.   towards C and making some smart inter-compiler #defines.
  72.  
  73.   Translate your 68k-assembler library startup-codes easily
  74.   to C by simply using this source-code as an advice how to do it.
  75.  
  76.   For testing: install the (re)compiled example.library to LIBS: and
  77.   start the test program - it should pop up a requester, then.
  78.  
  79.   If you can submit adjustments for the other compilers as mentioned
  80.   above: feel free to send these.
  81.   ---
  82.   Feel free to use this source for own projects.
  83.  
  84.   It is allowed to be spread and distributed anywhere, as far
  85.   as my consent is concerned.
  86.  
  87.   Amiga International, or the current owner of the technologie,
  88.   is allowed to always put this source on their newest
  89.   Developer CD-ROM.
  90.  
  91.   Thanks and credits will always be appreciated - for example,
  92.   you MAY, but NEED NOT:
  93.   give me credits in your program's docs, send me keyfiles for
  94.   your programs using the library, and so on.
  95.   But that's simply voluntarily.
  96.  
  97.   ** General PerSuaSiVe SoftWorX WWW Support Site is http://wdo.de/ark/
  98.   ** - actually redirected to http://home.t-online.de/home/Andreas_Kleinert/
  99.  
  100.    _________________________________________________________
  101.   |      You may reach me the following way.                |
  102.   |    Send bug-reports, money or whatever to:              |
  103.   |---------------------------------------------------------|
  104.   |        * SuperView Development & Registration *         |
  105.   |          * DRAFU Development & Registration *           |
  106.   |       * Image Engineer Registration Site Europe *       |
  107.   |                                                         |
  108.   |                                                         |
  109.   |                  PerSuaSiVe SoftWorX                    |
  110.   |                                                         |
  111.   |                  Andreas R. Kleinert                    |
  112.   |                  Sandstrasse 1                          |
  113.   |                  D-57072 Siegen                         |
  114.   |                  Germany, Europe                        |
  115.   |                                                         |
  116.   | Any snail mail to the old address will still be routed. |
  117.   |                                                         |
  118.   |                  Phone:  +49-271-22869 also FAX + AM    |
  119.   |                                                         |
  120.   |                  Weekdays after 18.00h.                 |
  121.   |                                                         |
  122.   |         When calling via phone you may leave a message, |
  123.   |         if I'm not available - but don't expect me      |
  124.   |         calling back to USA, Australia, ... since       |
  125.   |         german phone rates are HIGHLY expensive.        |
  126.   |_________________________________________________________|
  127.  
  128.   EMail:
  129.  
  130.         Please send binaries via ARK@News.wwbnet.de, and keep
  131.         them smaller than 16 KB - otherwise ask before.
  132.         Please think twice before sending them - my postbox
  133.         is not unlimited in size.
  134.  
  135.         * Do not send binaries via Fido or Fido-Gates ! *
  136.  
  137.            - Fido   Andreas Kleinert 2:2457/350.18
  138.            - Usenet
  139.               >>>   Andreas_Kleinert@t-online.de     (T-Online)
  140.                     ARK@News.wwbnet.de               (Z-Netz)
  141.                     Andreas_Kleinert@gmx.de          (GMX)
  142.  
  143.              (note, that mail sent to @gmx.de currently will be
  144.               forwarded to @t-online.de - so, as long as it works,
  145.               try to address the latter directly)
  146.  
  147.            - If nothing else works, try one of these public
  148.              Fido-Usenet gateways:
  149.  
  150.                In Germany:
  151.                  Andreas_Kleinert@p18.f350.n2457.z2.fido.sub.org
  152.  
  153.                From USA or elsewhere:
  154.                  Andreas_Kleinert@p18.f350.n2457.z2.fidonet.org
  155.  
  156.  
  157.  History:
  158.  
  159.  V37.33 (14.03.99): - added revised StormC project file by
  160.                       Fredrik Rambris <fredrik.rambris@amiga.nu>
  161.                     - small changes to the docs
  162.  
  163.  V37.32 (02.03.99): - finally fixed version problem by adding
  164.                       additional $VER string
  165.                     - updated docs and email addresses
  166.  
  167.  V37.31 (18.03.98): - changed SEGLISTPTR type definition for VBCC
  168.                       (-> Patrick Burnand)
  169.                     - fixed some typos and improved style in several
  170.                       source modules and headers
  171.  
  172.  V37.30 (07.03.98): - added DICE support, done by Patrick Burnand
  173.                       <pburnand@hotmail.com>
  174.                       He modified LibInit.c and StartUp.c to avoid a possible
  175.                       bug in DICE.  The 'extern' keyword might not always be
  176.                       supported well.  (extern struct ExampleBase*...)
  177.                     - added some typecasts to InitTable definition
  178.                       (so that the other compilers can't complain about the
  179.                        changes done for DICE)
  180.                     - simplified sample program
  181.                     - again fixed type definition of "seglist" pointer;
  182.                       it's now a global typedef-inition/#define in compiler.h
  183.                       (SEGLISTPTR) so everyone should be happy again
  184.                       (-> Sven Drieling)
  185.  
  186.  V37.22 (29.12.97): - fixed TestExampleLib.c
  187.                       (-> Stephan Rupprecht)
  188.                     - updated Stephan's email address
  189.                       (now is: stephan.rupprecht@metronet.de)
  190.                     - renamed "c_lib" directory and "ReadMe_First"
  191.                       to CLib37x#?
  192.  
  193.  V37.21 (19.12.97): - adjusted "compiler.h" as suggested by Volker Barthelmann
  194.                       (VBCC), done by Patrizio Biancalani
  195.                     - updated Patrizio's email address (-> ReadMe.VBCC)
  196.                     - fixed my email, too (how did that COB.wwbnet.de make
  197.                       it into this readme again ?)
  198.                     - "compiler.h" now protected from multiple #inclusion
  199.  
  200.  V37.20 (02.12.97): - added VBCC support, done by Patrizio Biancalani
  201.                       <P.Biancalani@agora.stm.it>
  202.  
  203.  V37.17 (24.10.97): - updated "ReadMe_MAXON" and added a bug-description
  204.                       (plus workaround) as supplied by Stephan Rupprecht
  205.                       <Rupprecht_Verwertung@t-online.de>
  206.                       [ 29/12/97: stephan.rupprecht@metronet.de ]
  207.  
  208.  V37.16 (23.8.97) : - V37.15 - frozen AROS spin-off
  209.                     - AROS-Version now included with AROS package, separately
  210.                     - added comments about Forbid/Permit/Wait/single-threading
  211.                       to the Library access functions
  212.                     - also commented the rest a little bit
  213.                       (-> maybe some certain people from comp.sys.amiga.programmer
  214.                           now feel better - but then again... maybe not ;)
  215.  
  216.  V37.14 (13.8.97) : - AROS: - the LH1_ to LH2_ macro replacements in
  217.                               "compiler.h" had been wrongly defined
  218.                             - "BPTR" type only was available under AROS,
  219.                               now using "struct SegList *"
  220.                             - AROS version now does compile under AmigaOS
  221.                               with SAS/C 6.58, too
  222.                     - "APTR seglist" now "struct SegList *"
  223.  
  224.  V37.13 (19.7.97) : - GNU makefile had lost its TABs
  225.                       (-> Gunter Nikl)
  226.  
  227.  V37.12 (29.6.97) : - fixed memory bug-fix (argh)
  228.                       (-> Gunter Nikl)
  229.                     - changed/applied GCC adjustments
  230.                       (-> diffs by Gunter Nikl)
  231.  
  232.  V37.11 (24.6.97) : - added "known bugs" section
  233.                     - LibInit now delocates library base on error
  234.                       (NULL return)
  235.                       (-> Gunter Nikl)
  236.                     - added AROS version, and created an additional
  237.                       source tree for it, since I did not get it compiled
  238.                       with SAS/C 6.57 and there's perhaps additional
  239.                       #ifdef stuf to be done. Anyone likes to merge these ?
  240.                       (-> Aaron Digulla)
  241.  
  242.  V37.10 (6.4.97) :  - added GCC version by Stefan Fuchs, snfuchs@sokrates.franken.de.
  243.                       Thanks !
  244.                     - some small changes to docs, includes and comments
  245.                     - still missing: DICE, Aztec, vbcc. Who does it ?
  246.                     - fixed ftn email address
  247.  
  248.  V37.6 (27.3.97) :  - finetuning
  249.  
  250.  V37.5 (24.1.97) :  - rewrote docs
  251.                     - added basic support for compiler independent
  252.                       register naming and SAS/C keyword replacements
  253.                       (compiler.h). Thus sources now should be easily
  254.                       adaptable for GCC as well.
  255.  
  256.  V37.4 (8.1.97) :   - added FD file
  257.                     - added new pragma file (and dir) as
  258.                       include/pragma/example_lib.h
  259.                       which works with Aztec, Maxon, Storm,
  260.                       DICE and SAS C compilers.
  261.                       Thanks to fd2pragma and Dirk Stoecker.
  262.                     - some fixes to the readme files
  263.                     - updated eMail list
  264.  
  265.  V37.3 (3.1.97) :   - slightly changed SCOPTIONS
  266.                     - fixed some style things (APTR and library casts)
  267.                     - changed note about library opening at L_OpenLibs()
  268.                     - now compileable with StormC 2.0 as well
  269.                       (not tested with 1.1) - see readme file for StormC
  270.                     - added project file for StormC 2.0, smakefile still
  271.                       present - select, which one you'd like to use
  272.  
  273.  V37.2 (12.12.96) : - applied some more changes and fixes
  274.                       (-> suggested by Helmut Hummel)
  275.                     - added icons
  276.                       (-> from Helmut Hummel)
  277.  
  278.  V37.1 (4.12.96) : - bumped version to V37
  279.                    - added MaxonC 3.x version by applying changes
  280.                      to the SAS/C sources and adding Maxon
  281.                      specific make and configuration files
  282.                      (-> all done by Helmut Hummel, see Readme.MAXON)
  283.                    - added StormC support
  284.                    - yet missing: DICE, Aztec, GNU. Who does it ?
  285.  
  286.  V1.4 (30.11.96) : - added SAS/C specific Ctrl-C disabling code
  287.                    - made some workarounds compiler sensitive
  288.                    - redone all with SAS/C V6.57
  289.                    - 944 Bytes ;-)
  290.  
  291.  V1.3 (13.9.96) :  - when starting lib as executable, -1 must be returned
  292.                    - now caching SysBase
  293.                    - added some comments, where changes should not
  294.                      be applied
  295.                    - added note about sharing library bases
  296.                    - documented and modified sample function,
  297.                      so that correct a0/a1/d0/d1 and a6 usage becomes
  298.                      more obviously and verbose
  299.                    - still 940 bytes ;-)
  300.  
  301.  V1.2 (5.9.96)  :  - fixed some things resulting out of a
  302.                      discussion in Z-Netz
  303.  
  304.  V1.1 (1.9.96)  :  - small changes in style
  305.                      (only bumped versions of changed modules):
  306.                        o moved "examplebase.h" to include/example/
  307.                          (so also adjusted LibInit.c, StartUp.c
  308.                           and SCOPTIONS for reflecting that)
  309.                        o SampleFuncs.h did contain wrong prototype
  310.                          (did not matter, since only used for
  311.                           ULONG function table within StartUp.c)
  312.                        o explicitely __aligned ROMTag structure
  313.  
  314.  V1.0 (14.8.96) : - first release
  315.  
  316.  
  317.  ---
  318.  All mentioned trademarks are subject to their owners.
  319.